package com.example.autopia.view.Activities

import android.content.Intent
import android.os.Bundle
import android.util.Log
import android.widget.LinearLayout
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.viewpager2.widget.ViewPager2
import com.example.autopia.R
import com.example.autopia.databinding.ActivityOnBoardBinding
import com.example.autopia.model.Item.Car
import com.example.autopia.model.Item.Card
import com.example.autopia.model.Item.HotNews
import com.example.autopia.model.Item.User
import com.example.autopia.model.Repositories.HotNewsRepository
import com.example.autopia.model.Repositories.NewsRepository
import com.example.autopia.model.Repositories.ParkingRepository
import com.example.autopia.model.Repositories.TestRepository
import com.example.autopia.model.Repositories.TransactionRepository
import com.example.autopia.model.Repositories.UsersRepository
import com.example.autopia.utilities.PreferenceManager
import com.example.autopia.view.Adapters.OnboardImgAdapter
import com.google.firebase.database.DataSnapshot
import com.google.firebase.database.DatabaseError
import com.google.firebase.database.DatabaseReference
import com.google.firebase.database.FirebaseDatabase
import com.google.firebase.database.ValueEventListener


class OnBoardActivity : AppCompatActivity() {
    private lateinit var binding: ActivityOnBoardBinding
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityOnBoardBinding.inflate(layoutInflater)
        setContentView(binding.root)

        val images = arrayOf(
            com.example.autopia.R.drawable.onboard_house,
            com.example.autopia.R.drawable.onboard_park,
            com.example.autopia.R.drawable.onboard_pay
        )
        val text = arrayOf(
            "Выбирайте парковочное место и бронируйте его, а позже сможете припарковаться на него, не боясь что не сможете найти место",
            "Общайтесь с другими водителями, создавайте обсуждения и оставляйте отзывы на парковки нашей сети",
            "Оплачивайте парковку поминутно, не выходя из машины через наше приложение"
        )

        val viewPager: ViewPager2 = binding.viewPager
        val adapter = OnboardImgAdapter(images)
        viewPager.adapter = adapter
        viewPager.isUserInputEnabled = false;

        var currentItemPager = viewPager.currentItem
        changeIndicator(currentIndicator(currentItemPager))
        binding.tvText.text = text[currentItemPager]

        binding.btNext.setOnClickListener {
            if (currentItemPager < images.size - 1) {
                currentItemPager += 1
                changeIndicator(currentIndicator(currentItemPager))
                val newItem = (currentItemPager)
                viewPager.currentItem = newItem
                binding.tvText.text = text[currentItemPager]
            } else {
                // If last element
                val onboardPreference: PreferenceManager = PreferenceManager(this@OnBoardActivity)
                onboardPreference.putBoolean("onboard", true)
                val intent = Intent(this, LoginActivity::class.java)
                startActivity(intent)
                finish()
            }


         /*   val repositoryUser = UsersRepository()
            val repositoryNews= NewsRepository()
            val repositoryTrans = TransactionRepository()
            val repositoryPark = ParkingRepository()
           // repositoryPark.addParking(TestRepository.getParkingList().get(0))
            repositoryPark.changePlace("-Ng_ItE2_QR1QtkN3uGg","2")*/
            // Получите данные из базы данных
              /*  myRef.addValueEventListener(object : ValueEventListener {
                override fun onDataChange(dataSnapshot: DataSnapshot) {
                    // Преобразуйте данные обратно в объект
                    val retrievedData = dataSnapshot.getValue(User::class.java)
                    if (retrievedData != null) {
                        // Вы можете использовать полученные данные здесь
                        Log.d("Yatoro",retrievedData.toString())
                    }
                }

                override fun onCancelled(error: DatabaseError) {
                    // Обработайте ошибку, если необходимо
                }
            })*/
        }
    }

    fun currentIndicator(currentItemPager: Int): String {
        val indicator_name: String = "ll_indicator_${currentItemPager + 1}"
        return indicator_name
    }

    fun changeIndicator(address: String) {
        val resourceId = resources.getIdentifier(address, "id", packageName)
        val indicator = findViewById<LinearLayout>(resourceId)
        indicator.setBackgroundResource(R.drawable.indicator_rounded_active)
    }
}